iT邦幫忙

2023 iThome 鐵人賽

DAY 11
0
Cloud Native

【하나, 둘, ready, get set, go】系列 第 11

【하나, 둘, ready, get set, go】Day 11 - functions

  • 分享至 

  • xImage
  •  

前情提要

到目前為止,我們都是將程式寫在 func main() {} 這個主要 function 內

簡單的小程式寫在 main 裡面可能還行,但是當程式規模再變稍大時,可能就不適合了

今天就來介紹要怎麼寫 Go 的 functions~

實際操作

最基本款

無傳入參數

func basicFunction() {
    // 這個 function 要做的事情
}

進階一點點點

一個傳入參數

func OneParameterFunction(i int) {
    // 這個 function 要做的事情
}

兩個 (含以上) 傳入參數

func MoreParametersFunction(i int, s string) {
    // 這個 function 要做的事情
}
func MoreParametersFunction(i int, s string, f float64) {
    // 這個 function 要做的事情
}

不定長度的參數

什麼叫做「不定長度的參數」呢?
就是長度不一,可能一下會是 2 個,一下會是 4 個之類的

這時候,就可以利用 Go 的 ... 來進行參數傳遞

func LengthNonFixedFunction(x ...int) {
    for _, v := range x {
        fmt.Println(v)
    }
}

呼叫時,就可以像下面這樣

LengthNonFixedFunction(1) 
/* 輸出結果:
1
*/

LengthNonFixedFunction(1, 2) 
/* 輸出結果:
1
2
*/

LengthNonFixedFunction(1, 2, 3) 
/* 輸出結果:
1
2
3
*/

進階一點點

一個回傳值

func OneReturnValueFunction() string {
    return "這個 Function 只有一個回傳值"
}

兩個 (含以上) 回傳值

func MoreReturnValuesFunction() (string, string) {
    return "回傳值ㄧ", "回傳值二"
}
func MoreReturnValuesFunction() (string, string, string) {
    return "回傳值ㄧ", "回傳值二", "回傳值三"
}

進階一點

替回傳值取名

func ReturnValueNamedFunction() (s string) {
    s = "Hello World"
    return
}

進階

帶有 receiver (接收器)

帶有 receiver 的 functions 稱為 method,這個我們明天再來介紹~

總結

今天簡單介紹了 Go 的 functions 的各種寫法

下一篇會來介紹 functions 的好朋友 method~

明天見~


上一篇
【하나, 둘, ready, get set, go】Day 10 - pointers
下一篇
【하나, 둘, ready, get set, go】Day 12 - method
系列文
【하나, 둘, ready, get set, go】30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言